<?php
namespace app\taobao\command;
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/6
 * Time: 17:59
 */
use think\console\Command;
use think\console\Input;
use think\console\Output;
use \Redis;

class TaskManager extends Command{

    protected function configure(){
        $this->setName('taskmanager')->setDescription("调度任务");
    }

    /**
     * 本方法绝对不能设计到数据库的操作 不然内存会一直加大
     * @param Input $input
     * @param Output $output
     */
    protected function execute(Input $input,Output $output ){
        set_time_limit(0);
        ini_set('default_socket_timeout',315360000);//设置过期时间十年 这样约等于永久了吧

        $taobaoConfig = Config('taobao');
        $controlQueue = $taobaoConfig['controlQueue'];
        $redis = new Redis();
        $redis->connect('localhost');
        while(true) {
            shell_exec('php think task'); //这个本身就是阻塞的吧  所以control基本没用了 就这样把
            $res = $redis->brPop($controlQueue, 0);
            //finishQueue的意义就是等待 因为保存到数据的操作已经由task 完成了 这的队列就是保证完成一个继续下一个
            //以后改成 gearman 可以 不用这种方法
        }

    }


}


